﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ivy.Common.Framework.Base;
using System.Runtime.Serialization;

namespace Ivy.UserRegistration.Entity
{
    [Serializable]
    [DataContract]
    public class User : DataEntityBase
    {
        #region Variables & Constants
        Int32 lUserKey = -1;
        string lUserLoginID = string.Empty;
        string lUserPassword = string.Empty;
        string lUserFirstName = string.Empty;
        string lUserLastName = string.Empty;
        string lUserPrimaryEmailID = string.Empty;
        string lUserVerificationCode = string.Empty;
        bool lUserIsVerified = false;

        #endregion Variables & Constants

        #region Constructor & Destructor
        public User()
            : base()
        {
            this.Sys_DeleteType = DeleteType.SoftDeleteOnly;
        }
        #endregion Constructor & Destructor

        #region Public Properties
        [DataMember]
        public Int32 UserKey
        {
            get
            {
                return lUserKey;
            }
            set
            {
                lUserKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserLoginID
        {
            get
            {
                return lUserLoginID;
            }
            set
            {
                lUserLoginID = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserPassword
        {
            get
            {
                return lUserPassword;
            }
            set
            {
                lUserPassword = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserFirstName
        {
            get
            {
                return lUserFirstName;
            }
            set
            {
                lUserFirstName = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserLastName
        {
            get
            {
                return lUserLastName;
            }
            set
            {
                lUserLastName = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserPrimaryEmailID
        {
            get
            {
                return lUserPrimaryEmailID;
            }
            set
            {
                lUserPrimaryEmailID = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserVerificationCode
        {
            get
            {
                return lUserVerificationCode;
            }
            set
            {
                lUserVerificationCode = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public bool UserIsVerified
        {
            get
            {
                return lUserIsVerified;
            }
            set
            {
                lUserIsVerified = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        #endregion Public Properties

        #region Public Methods
        #endregion Public Methods

        #region Events
        #endregion Events

        #region Private Methods

        #endregion Private Methods

    }
}
